package com.ibeeking.found.cop.service.mapper;

import com.ibeeking.found.common.base.BaseMapper;
import com.ibeeking.found.cop.service.common.dos.FriendsTagsRelDO;
import com.ibeeking.found.cop.service.common.dos.GroupTagsRelDO;
import com.ibeeking.found.cop.service.common.po.FriendsTagsRelPO;
import com.ibeeking.found.cop.service.common.po.GroupTagsRelPO;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

public interface GroupTagsRelMapper extends BaseMapper<GroupTagsRelDO> {

    List<GroupTagsRelDO> listByGroupIds(@Param("tenantId") Integer tenantId, @Param("groupIds") Set<Long> groupIds);

    List<GroupTagsRelDO> listByTagsIds(@Param("tenantId") Integer tenantId, @Param("tagsIds")  Set<Long> tagsIds);

    List<GroupTagsRelPO> listTagsByGroupId(@Param("tenantId") Integer tenantId, @Param("groupId")  Long groupId);

    Integer batchInsertOnNotExist(@Param("tenantId") Integer tenantId, @Param("entityList") List<GroupTagsRelDO> tagsRelDOS);

    Integer batchDeleteOnExist(@Param("tenantId") Integer tenantId, @Param("entityList") List<GroupTagsRelDO> tagsRelDOS);

    List<String> getGroupOwnerCodeListByTagsIdsList(@Param("tenantId") Integer tenantId, @Param("tagsIdList") List<Long> tagsIdList);

}
